package a10_ChangeStr;

import java.util.Scanner;

/**
 * @Author quan
 * @Description 自己写的和解法1思路基本一致。但是自己的没有把方法都抽取出来，写的比较乱。
 * 调整字符串： 给定两个字符串A,B 将A旋转后就是将A最左边的字符移动到最右边
 * 如果若干次调整后,A可以变为B则返回True,否则返回false。
 * @Date 2023/1/31 0:47
 */

//自己写的功能基本实现，但是不够简洁。
public class OurTestDemo {
    public static void main(String[] args) {
        //定义一个字符串B strb
        String strb = "abcdefg";

        //手动输入一个字符串A  str
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串A：");
        String str = sc.next();

        boolean flag = sub(str,strb);
        if(flag){
            System.out.println("可以翻转");
        }else{
            System.out.println("不可以翻转");
        }
    }
    //1、获取一个字符串A
    //2、先截取后length-1位和第1位，再进行字符串的拼接，将第一位拼接到最后
    //截取字符串的方法

    public static boolean sub(String str,String strb){
        for (int i = 0; i < str.length(); i++) {
            String res1 = str.substring(0,1);
            String res2 = str.substring(1,str.length());

            StringBuilder sb = new StringBuilder(res2);
            sb.append(res1);

            //每次翻转移位后的A字符串都与B字符串进行比较是否相等
            if(sb.toString().equals(strb)){
                return true;
            }
            //更新字符串
            str = sb.toString();
//            System.out.println(sb);
        }
       return false;
    }
}
